As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. An option is an Information Handling System (IHS). An IHS generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes. Because technology and information handling needs and requirements may vary between different applications, IHSs may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in IHSs allow for IHSs to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, global communications, etc. In addition, IHSs may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Certain IHSs may be configured to utilize an array of storage devices for storing information, such as in a Redundant Array of Independent Disks (RAID) system. In a RAID system, data is distributed across multiple storage devices of the array in such a manner that if one of the storage devices fails, the data stored on the failed storage device can be recovered from the remaining storage devices of the RAID system. Configured in this manner, the redundancy of RAID system increases fault tolerances and, in some scenarios, may also improve performance. An IHS configured for operation in a RAID system may utilize a storage controller component that controls the transfer of data to and from each of the individual RAID storage devices that are coupled to the IHS.
A storage controller typically includes an internal cache memory, typically a high-speed memory that may be comprised of multiple levels, that is used to buffer data as it is transferred to and from the RAID storage devices. When data is being written to the RAID system by the host IHS, the storage controller may cache the received write data in the internal cache memory. The storage controller may then transfer the cached write data to one or more of the RAID storage devices. A storage controller may be configurable to switch between two different modes of operation for this process of caching write data received from the host IHS. The mode of write data caching that is current being enforced by a storage controller may be referred to as the write policy of the storage controller.
In a write-through mode, the write data is cached by the storage controller and immediately transferred to storage locations disbursed in the RAID storage devices coupled to the storage controller. The storage controller does not acknowledge the completion of the write data operation to the host IHS until this entire write operation is complete. While write-through caching seeks to guarantee the integrity of each write data operation by the storage controller, the write-through process also results in significant latency in each write operation. In a write back mode, the storage controller acknowledges the completion of the write data operation upon caching the write data to the cache memory. The host IHS may resume operations upon receipt of this acknowledgement, thus improving the speed of write operations from the perspective of the host IHS. The write data may remain queued in cache memory while the storage controller processes other data transfers or perform other operations. For the host IHS, the latency of each write-back data transfer is significantly reduced when compared to the use of write-though caching.
Due to the faster write operations allowed by write-back caching, it is typically the preferred mode of operation for a storage controller. However, in various scenarios, the storage controller may be limited to utilizing only write-through caching. For instance, in certain RAID operations, the storage controller may be required to operate using write-through caching. For instance, during RLM (RAID Level Migration) or OCE (On-line Capacity Expansion) RAID operations, a storage controller is required to provide write-though caching. Certain storage controllers may have limited or no internal cache memory, thus limiting these storage controllers to write-through caching. Certain storage controllers may include internal backup power systems that may be used to store cached memory data to persistent memory in the case of a loss of power. In such storage controllers, write-back caching may only be enabled, in some scenarios, if the backup power system is charged and operable. A storage controller may be similarly limited to providing write-through caching in various additional scenarios.